﻿//AjaxPagerX 分页控件跳转用于跳转 传入form名称和页码
function AjaxToPage(formname, pageindex)
{

    var _pageIndex = '#' + formname + ' #pageIndex';
    $(_pageIndex).val(pageindex);

    if ($(_pageIndex).length == 0)
    {
        for (var i = 0; i < document.getElementsByName("pageIndex").length; i++)
        {
            document.getElementsByName("pageIndex")[i].value = pageindex;
        }
    }

    $('#' + formname).submit();
    return false;
}

//AjaxPagerX 分页控件跳转用于刷新当前页      
function AjaxToRefresh(formname)
{
    var _pageIndex = '#' + formname + ' #pageIndex';
    var _HpageIndex = '#' + formname + ' #HpageIndex';
    $(_pageIndex).val($(_HpageIndex).val());
    $('#' + formname).submit();
    return false;
}

//AjaxPagerX 分页控件用于改变form里面隐藏域的值，如果没有将创建一个
function UpdateHidden(formname, hiddenName, value)
{
    var temp_hiddenName = '#' + formname + ' #' + hiddenName;

    if ($(temp_hiddenName).length > 0 || (isie6() && ($("#" + formname + " input[name='" + hiddenName + "']").length > 0)))
    {
        $(temp_hiddenName).val(value);
    }
    else
    {
        var str = '<input  type=\"hidden\" id=\"' + hiddenName + '\" name=\"' + hiddenName + '\" value=\"' + value + '\"  /> ';
        $('#' + formname).append(str);
    }
}



//数组删除元素 传入数组下标
Array.prototype.remove = function (dx)
{
    if (isNaN(dx) || dx > this.length) { return false; }
    this.splice(dx, 1);
    return this;
}

/***************************辅助提交控件****************************************/

//绑定所有dataType标识的控件
$.DataTypeBind=function(){
	  $("[dataType]").each(function(){
	  		
			if($(this).attr("DataTypeClick")=="True")
			{
				$(this).unbind('click');
			}else
			{
				$(this).attr("DataTypeClick","True")
			}
			
			$(this).bind("click",function(){   
			    col=$(this);
				if($(this).attr("dataTip")==undefined)
				{ 
					$.AjaxServerAuto(col)
				}else
				{
				   $.confim($(this).attr("dataTip"),function()
					{
					   $.AjaxServerAuto(col)
					});
				}
				return false;
			})
	})
}

//根据dataType选择处理方法
$.AjaxServerAuto =function(col)
{
    var funobj = true;
    if (col.attr("datareturn")!=undefined)
    {
        funobj = eval(col.attr("datareturn"));
    }
    
	if(col.attr("dataType")=="confimsubmit")
    {
		$.confimSubmit(col,funobj);		
	}else if(col.attr("dataType")=="confimurl")
	{
		$.confimUrl(col,funobj);
									
	}else
	{
		$.DialogAjax(col,funobj);
	}
}

//提示是否提交指定的链接
//传入控件对象obj
$.confimSubmit = function (obj,funobj)
{
    try
    {
           var href = $(obj).attr("dataval");
           
            $.AjaxServer(href, null, function (data)
            {
				if(typeof(funobj)=="function")
				{
					funobj(data);
				}
            });
    }
    catch (e)
    {

    }
    return false;
}

//提示是否跳转到指定的页面
//传入控件对象obj
$.confimUrl = function (obj,funobj)
{
    try
    {
        var href = $(obj).attr("dataval");
        window.location = href;
    }
    catch (e)
    {

    }
    return false;
}

//在弹窗中显示内容
//传入控件对象obj
$.DialogAjax = function (obj,funobj)
{
    try
    {
        var href = $(obj).attr("dataval");
        var alt = $(obj).attr("alt");
        $.AjaxServer(href, null, function (data)
        {
            var id = newGuid();
            art.dialog({
                title: alt,
                id: id,
                fixed: false,
                lock: false,
                content: "<span style='line-height:22px;'>" + _SetDialogContent(data, id) + "</span>",
                ok: false,
                close: funobj
            });
			
        });
    }
    catch (e)
    {

    }
    return false;
}


/***************************辅助提交控件****************************************/







$.ShowDialog = function (content, title)
{
    var id = newGuid();
    return art.dialog({
        title: title,
        id: id,
        fixed: true,
        lock: true,
        content: _SetDialogContent(content, id),
        resize: false
    });
}



//webFileUrl 请求地址
//jsonArgs参数 {}
//callBackFunc 回调 
//是否异步async 默认true
//是否开启遮罩  默认true
$.AjaxServer = function (webFileUrl, jsonArgs, callBackFunc, async, isTip)
{
    if (isTip == null)
    {
        isTip = true;
    }

    try
    {
        $.ajax({
            url: webFileUrl,
            data: jsonArgs,
            type: 'Post',
            async: async == null ? true : async,
            cache: false,
            success: function (data, textStatus, rqinfo)
            {
             if(typeof(data)=="object"&&typeof(data.IsError)!="undefined"&&data.IsError)
             { 
                 $.alert(data.ErrorTxt);
             }else
             {
                 return callBackFunc(data, textStatus, rqinfo);
             }
            },
            error: function ()
            {
                $.alert('Error');
            },
            complete: function (XHRequest, T)
            {
                XHRequest = null
            },
            isTip: isTip
        });

    }
    catch (e)
    {
        alert(e)
    }

}


/****************全局遮罩******************/
$(document).ajaxSend(ajaxTips).ajaxComplete(unTips);

function ajaxTips(event, xhr, settings)
{
    if (settings.isTip!=null && settings.isTip == false)
    {
        return;
    }

    settings._ajaxartDialogClose = false;
    settings._ajaxartDialog = artDialog({
        title: false,
        cancel: false,
        fixed: true,
        lock: true,
        height: '5px',
        width: '5px',
        padding: '0px 0px',
        esc: false,
        close: function ()
        {
            return false;
        }
    });
}

function unTips(event, xhr, settings)
{
        if (settings._ajaxartDialog != null)
        {
            settings._ajaxartDialog.config.close = function () { return true };
            settings._ajaxartDialog.time(1);
        }
}
/****************全局遮罩End******************/

$.AjaxForm_info=function()
{
	$("[AjaxForm]").each(function (index, domEle)
    {
		$(this).unbind("submit");
	   $(this).bind("submit",function(){   
	     AjaxFormExec($(this));
	     return false; 
	   })
    });
}

//执行第一次表单
function AjaxFormExec(ajaxcol)
{
	 try
	   {
	     if(ajaxcol.attr('AjaxVerify')!=undefined&&ajaxcol.attr('AjaxVerify')!="")
	     {
	        if( eval(ajaxcol.attr('AjaxVerify'))(ajaxcol)==false)
	        {
	          return false; 
	        }
	     }
	     $.AjaxServer(ajaxcol.attr('AjaxForm'),ajaxcol.serialize(),function(data){
	   
	        if(ajaxcol.attr('AjaxSuccess').indexOf("#")!=-1)
	        {
	          $(ajaxcol.attr('AjaxSuccess')).html(data)
	        }else  if(ajaxcol.attr('AjaxSuccess')!=undefined&&ajaxcol.attr('AjaxSuccess')!="")
	        {
	            eval(ajaxcol.attr('AjaxSuccess'))(data)
	        }
	     
	     })
	 }catch(e)
	 {
	   	 alert(e)
	 }
}

//表单验证
$.AjaxFormVerify = function(col)
{
  //清理所有错误提示层
  CloseAllError();
  outval="";
  isShowalert=false;
  col.find("input").each
  (
    function ()
	{
		  //判断这个验证是否有
		  __VerifySpan__($(this),"");
		  $(this).removeClass("errorbox");
	      if($(this).attr("vf_NotNull")!=undefined)
		  {
		  	   if($(this).val()+"a"=="a") 
			   {
			   	  outval=($(this).attr("alt")+"不能为空")
				  __VerifySpan__($(this),outval);
			   }
		  }
		  
		  if($(this).attr("vf_Equal")!=undefined)
		  {
		  	vf_Equal=$("#"+$(this).attr("vf_Equal"));
		  	   if($(this).val()!=vf_Equal.val()) 
			   {
			   	  outval=($(this).attr("alt")+"必须与"+vf_Equal.attr("alt")+"相同")
				  __VerifySpan__($(this),outval);
			   }
		  }
		  
		  if($(this).attr("vf_Num")!=undefined)
		  {
		  	vf_Num=$("#"+$(this).attr("vf_Num"));
		  	   if(isNaN(vf_Num.val())||vf_Num.val().length==0) 
			   {
			   	  outval=($(this).attr("alt")+"必须是数字")
				  __VerifySpan__($(this),outval);
			   }
		  }
		  
	}
  );
  
  
col.find("textarea").each
  (
    function ()
	{
		  __VerifySpan__($(this),"");
		  $(this).removeClass("errorbox");
	      if($(this).attr("v_maxlength")!=undefined)
		  {
		  	///alert($(this).attr("v_maxlength"))
		       var i=parseInt($(this).attr("v_maxlength"))
			  
		  	   if($(this).val().length > i) 
			   {
			   	  outval=($(this).attr("alt")+"不能超过"+i+"个字符,你已输入"+$(this).val().length+"个字符。")
				  __VerifySpan__($(this),outval);
			   }
		  }
	}
  );
  
 
  if(outval.length==0)
  {
  	return true;
  }else
  {
  	if(isShowalert)
	{
		$.alert(outval);
	}
  	return false;
  }
}

//把错误信息填充到span中
function  __VerifySpan__(col,txt)
{
	col.addClass("errorbox");
	var name=col.attr("name");
   	var vf_span=$("[vf_span='"+name+"']");
	if(vf_span.length==0&&col.attr("id")!=""&&txt!="")
	{
		$.tipsError(txt,col.attr("id"));
	}else
	{
		vf_span.html(txt);
	}
}


//刷新页面
function PageRefresh()
{
$.tips("操作成功",null,2,function(){
window.location=window.location;
});
}


//分页
function previousSubmit(formid,page)
{
	$("#hdn_form_"+formid).val(page)
	$("#"+formid).submit();
	return false;
}

//分页跳转 传入当前控件，将自动查询该控件所在的form
//page=跳转到的页面
function PageSubmit(col,page)
{
	var list=col.parents("form:first")
	if(list!=null)
	{
		$("#hdn_form_"+list.attr("id")).val(page);
		list.submit()
	}
	return false;
}

//绑定分页控件的分页按钮
$.pageto=function ()
{
	$("[pageto]").each
	(
	  function ()
      {
	  		$(this).unbind("click");
	        $(this).bind("click",function(){
				
		           PageSubmit($(this),$(this).attr("pageto"));
	         })
	
       }
	);
}


//高亮表格
function HighlightTable(tableSelector, click)
{
    $(tableSelector + " tbody tr").mouseover(function ()
    {
        $(this).addClass("over");
    }).mouseout(function ()
    {
        $(this).removeClass("over");
    }).click(function (index)
    {
        if (click != false)
        {
            var tr = $(this);
            var table = tr.parents("table");
            $(tableSelector + " tbody tr").each(function ()
            {
                $(this).removeClass("alt");
            });
            tr.addClass("alt");
        }
    });
}

$.TableAlt=function ()
{
    HighlightTable(".tablelist");
}


//加载页面上所有的晚绑定事件
InfoPage=function()
{
  $.DataTypeBind()
  $.TableAlt()
  $.pageto()
  $.AjaxForm_info()
}

$(InfoPage)